# 自定义索引转换过滤器
import functools

from flask import session, current_app, g

from info.static.models import User


def index_convert(index):
    index_dict = {1:"first",2:"second",3:"third"}
    # index_dict.get(index,"") 表示 当index为1,2,3时可以从字典中取值first,second,third. 当index不为1,2,3,时 应为字典中没有值可以取 所以使用 get的默认值 “” 空字符串
    return index_dict.get(index,"")



# 查询用户登陆状态
def user_login_data(f):

    @functools.wraps(f)  # 可以让闭包函数wrapper使用指定函数f的函数信息(如函数名wrapper.__name__)
    def wrapper(*args,**kwargs):
        # 获取状态保持的session参数
        user_id = session.get("user_id")
        # 为了使当user不存在时也不会让系统崩溃 设置user=none
        user = None
        # 从数据库中查询用户的信息
        try:
            user = User.query.get(user_id)
        except BaseException as e:
            current_app.logger.error(e)
        # 将用户信息数据转换成字典（models.py User类型中的to_dict 函数）

        g.user = user # 让g变量记录查询的用户信息

        # 再返回执行原函数
        return f(*args,**kwargs)

    return wrapper